Remote computing systems enable users to access resources hosted by remote computers. In these systems the essential components are the client and the server. The server in this system executes programs and transmits signals indicative of a user interface to clients that connect using a communication protocol such as the TCP/IP protocol. Each connecting client is provided a session, e.g., an execution environment that includes a set of resources. Each client transmits signals indicative of user input to the server and the server applies the user input to the appropriate session.
Generally when a client connects to a server, the display driver(s) of the server may generate a user interface at a certain display resolution. In certain situations, the display resolution of the server may be higher than the display resolution of the client. Since in this architecture the user interface for the session is generated by the server and merely rendered by the client, the client would have to modify the display settings of the server in order to change how the session looks on their client.
In certain situations however modifying the display settings to accommodate a client may be undesirable. For example, the display of the server can be configured to render a user interface while the client is remotely connected for the purpose of providing technical support to a user or collaboratively work on a project with a user. If the display settings of the server were adjusted to accommodate the client then the user experience of an operator of the server would be diminished. In another situation the optimum resolution of the client may not be supported by the display driver of the server. In this situation modifying the display settings could potentially damage a physical display attached to the server.
Current techniques provide scrollbars, e.g., graphical widgets, to scroll a view of a user interface. As the scrollbar is moved the view of the user interface is panned. This technique however is cumbersome and interrupts the normal workflow. For example a user that wishes to drag a file from one end of a user interface to another must drag the file to the edge of the depicted portion of the UI, move the scroll bar over, and drag the file to the desired spot. In another example, a user that works with a user interface that spans across multiple physical monitors naturally moves their cursor from one monitor to another as they change the focus of their attention. Requiring a user to move a scrollbar to view different portions of a user interface interrupts this natural workflow. Thus, it would be desirable to provide a more naturally intuitive way to navigate a user interface.